package com.afb

class HHPredJob extends Job {

//    static hasMany = [ processes : Process ]

    String proteinSequences

    String hmmDatabases




    /**
     * FILTER INPUT ALIGNMENT
     */

    // [0,100] maximum pairwise sequence identity (%) (def=90) [0,100]
//    float id
    float maxPairWiseSeqId

    // filter most diverse set of sequences, keeping at least this many sequences in each block of >50 columns (def=100)
    int diff

    // [0,100] minimum coverage with query (%) (def=0)
//    float cov
    String cov

    // [0,100] minimum sequence identity with query (%) (def=0)
//    float qid
    String qid

    // [0,100] minimum score per column with query  (def=-20.0)
//    float qsc
    String qsc



    /**
     * OUTPUT OPTIONS
     */
    // number of columns per line in alignment list (def=80)
    int aliw

    // minimum probability in summary and alignment list (def=20)
    int p

    // maximum E-value in summary and alignment list (def=1E+006)
     float e
    //String e

    // maximum number of lines in summary hit list (def=500)
    int zmax

    // minimum number of lines in summary hit list (def=10)
    int zmin

    // maximum number of alignments in alignment list (def=500)
    int bmax

    // minimum number of alignments in alignment list (def=10)
    int bmin





    /**
     * HMM-HMM alignment options
     */
    // realign displayed hits with max. accuracy (MAC) algorithm (false default)
    boolean realign=false

    // posterior probability threshold for MAC re-alignment (def=0.300) Parameter controls alignment greediness: 0:global >0.1:local
//    float mact
    String mact


    // use global/local alignment mode for searching/ranking (def=local)
    String globloc

    // show up to this many significant alternative alignments(def=2)
    int alt

    // exclude query positions from the alignment, e.g. '1-33,97-168'
    // String exc <range>

    // score off-set [-1,1]
//    float shift
    float shift

    // weight of term for pair correlations (def=0.10) [0,1]
    // float corr
    float corr

    // 0:   no ss scoring     1,2: ss scoring after or during alignment  [default=2]     3,4: ss scoring after or during alignment, predicted vs. predicted
    int ssm

    // weight of ss score  (def=0.11) [0,1]
    // float ssw
    float ssw








//    int maxPsiBlastIterations
//
//    String scoreSecondaryStructure
//
//    String alignmentMode
//
//    boolean realignWithMac
//
//    String eValueThresholdPsiBlast
//
//    String minCoveragePsiBlastHits
//
//    String minSequenceIdentityOfPsiBlastHitsWithQuery
//
//    // 0.0: global     >= 0.1 : local
//    String macRealignmentThreshold
//
//    Boolean compositionalBiasCorrection
//
//    String showSequencesPerHMM
//
//    int widthOfAlignments
//
//    int minProbabilityInHitList
//
//    int maxNumberOfHitsInHitList



    static mapping = {
        proteinSequences type: 'text'
    }


    static constraints = {
        proteinSequences(blank:false, widget:'textarea',size:0..2147483646)
        maxPairWiseSeqId(min:0.0F, max:100.0F, blank:false)



////        proteinsFile()
        hmmDatabases(inList:["PDB","SCOP","Superfamily"])

        aliw(min:0, max: 1000, blank:false)
        p(min:0, max:100, blank:false)
        e(min:0.0F, max:100.0F, blank:false)
//        zmax(min:0, max:10000, blank:false)
//        zmin(min:0, max:10000, blank:false)
//        bmax(min:0, max:10000, blank:false)
//        bmin(min:0, max:10000, blank:false)
//
//        id(min:0, max:100, blank:false)
//        diff(min:0, max:100000, blank:false)
//        cov(min:0, max:100, blank:false)
//        quid(min:0, max:100, blank:false)
//        qsc(min:-1000, max:1000, blank:false)
//
        realign(inList:[true,false])
//        // 0.0: global     >= 0.1 : local
        mact(inList:["0.0","0.1","0.2","0.3","0.4","0.6","0.7","0.8","0.9","0.95"])
        globloc(inList:["Local","Global"])
        alt(min:0,max:10000, blank:false)
        shift(min:(-1.0F),max:1.0F, blank:false)
        corr(range:0.0F..1.0F)
        ssm(inList:[0,1,2,3,4])
//        ssw(range:-1.0F..1.0F)
//        ssw(min:(-1F),max:1F, blank:false)
//        ssw(min:-1,max:1, blank:false)







        

//        maxPsiBlastIterations(range:0..10)
////
//        scoreSecondaryStructure(inList:["Yes","No","Predicted vs predicted Only"])
////
//        alignmentMode(inList:["Local","Global"])
////
//        realignWithMac()
////
//        eValueThresholdPsiBlast(inList:["1E-3","1E-4","1E-6","1E-8","1E-10","1E-15","1E-20","1E-30","1E-40","1E-50"])
////
//        minCoveragePsiBlastHits(inList:["0","10","20","30","40","50","60","70","80","90"])
////
//        minSequenceIdentityOfPsiBlastHitsWithQuery(inList:["0","10","20","30","40","50","60","70","80","90"])
////
////        // 0.0: global     >= 0.1 : local
//        macRealignmentThreshold(inList:["0.0","0.1","0.2","0.3","0.4","0.6","0.7","0.8","0.9","0.95"])
////
//        compositionalBiasCorrection()
////
//        showSequencesPerHMM(inList:["1","2","3","4","5","6","7","8","9","10"])
////
//        widthOfAlignments()
////
//        minProbabilityInHitList()
////
//        maxNumberOfHitsInHitList()
////

    }
}
